class MovimientosController < ApplicationController
#MODULE: Gestión Salarial

  # GET /movimientos
  # GET /movimientos.xml
  def index
  end

  # GET /movimientos/1
  # GET /movimientos/1.xml
  def show
    @movimiento = Movimiento.find(params[:id])

    respond_to do |format|
      format.html {render :layout=>!params[:cbox]}
      format.xml  { render :xml => @movimiento }
    end
  end

  # GET /movimientos/new
  # GET /movimientos/new.xml
  def new
    @movimiento = Movimiento.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @movimiento }
    end
  end

  # GET /movimientos/1/edit
  def edit
    @movimiento = Movimiento.find(params[:id])
  end

  # POST /movimientos
  # POST /movimientos.xml
  def create
    @movimiento = Movimiento.new(params[:movimiento])

    respond_to do |format|
      if @movimiento.save
        flash[:notice] =  'Movimiento creado correctamente.'
        format.html { params[:oper].nil? ? redirect_to(@movimiento) : render(:text => "Ok")}
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @movimiento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /movimientos/1
  # PUT /movimientos/1.xml
  def update
    @movimiento = Movimiento.find(params[:id])

    respond_to do |format|
      if @movimiento.update_attributes(params[:movimiento])
        flash[:notice] = 'Movimiento actualizado correctamente.'
        format.html { redirect_to(@movimiento) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @movimiento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /movimientos/1
  # DELETE /movimientos/1.xml
  def destroy
    @movimiento = Movimiento.find(params[:id])
    if params[:siguientes]
      principal = @movimiento.principal ? @movimiento.principal : @movimiento.id
      Movimiento.delete_all ["principal = ? and fecha > ?", principal, @movimiento.fecha]
    end
    @movimiento.destroy

    respond_to do |format|
      format.html { redirect_to(movimientos_url) }
      format.xml  { head :ok }
    end
  end

  def datos #IGNORE
    registros, count = find_by_params(params, :class => Movimiento.sin_prestamos, :includes => [:usuario, :tipo_movimiento], :tipo_join => :joins)
    # Construct a hash from the ActiveRecord result
    return_data = Hash.new()
    return_data[:page] = params[:page]
    return_data[:total] = (count.to_f / params[:rows].to_i).ceil
    return_data[:records] = count

    return_data[:rows] = registros.collect{|u| {:id=>u.id,
      :cell=>[ 
        u.fecha,
        u.usuario.try(:nombre),
        u.tipo_movimiento.try(:nombre),
        u.ref_recibo,
        u.valor
    ]}}

    # Convert the hash to a json object
    render :text=>return_data.to_json, :layout=>false
  end

end
